
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能
from typing import Dict, List, Union


class 职业主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1


class 技能0(被动技能):
    名称 = '单兵推进器'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    等级精通 = 10
    关联技能 = ['交叉射击', '聚合弹', '凝固汽油弹', '超真空弹：切利']
    关联技能1 = ['爆裂弹']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + (10 + self.等级) / 100, 3)

    def 加成倍率1(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + (2 * self.等级) / 100, 3)


class 技能1(被动技能):
    名称 = '兵器研究'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10
    等级精通 = 10
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['EMP磁暴', '决战之日', '终解·制空霸权']

    def 独立攻击力倍率(self, 武器类型):
        return (1.1 + (self.等级 - 10) * 0.02) if self.等级 >= 10 else (1 + self.等级 * 0.01)

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 - 0.01 * self.等级, 3)


class 技能2(被动技能):
    名称 = '手雷精通'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10
    等级精通 = 10
    关联技能 = ['G35感电手雷', 'G18冰冻手雷']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + 1.2*(0.1 * self.等级), 3)


class 技能3(被动技能):
    名称 = '弹药改良'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10
    等级精通 = 10
    关联技能 = ['所有']
    技能加成描述 = ''
    加成数值 = 1.0
    关联技能1 = ['所有']

    def 加成倍率(self, 武器类型):
        return 1.1

    def 加成倍率1(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.03 + min(10, self.等级) * 0.02 + max(0, self.等级 - 10) * 0.01


class 技能4(职业主动技能):
    名称 = "M18阔剑地雷"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [70, 588]
    无色消耗 = 0
    data0 = [0, 1058, 1165, 1273, 1380, 1487, 1595, 1702, 1809, 1917, 2025, 2133, 2240, 2347, 2455, 2562, 2669, 2777, 2884, 2991, 3099, 3206, 3313, 3421, 3528, 3637, 3744, 3851, 3959, 4066, 4173, 4281, 4388, 4495, 4603, 4710, 4817, 4925, 5032, 5139, 5247, 5355, 5463, 5570, 5677, 5785, 5892, 5999, 6107, 6214, 6321, 6429, 6536, 6643, 6751, 6858, 6967, 7074, 7181, 7289, 7396, 7503, 7611, 7718, 7825, 7933, 8040, 8147, 8254, 8362, 8469]
    hit0 = 3
    TP成长 = 0.1
    TP上限 = 7


class 技能5(职业主动技能):
    名称 = 'G35感电手雷'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [40, 350]
    无色消耗 = 0
    data0 = [0, 818, 901, 984, 1065, 1149, 1232, 1315, 1398, 1481, 1564, 1647, 1731, 1814, 1897, 1980, 2061, 2145, 2227, 2311, 2394, 2477, 2560, 2643, 2727, 2809, 2893, 2975, 3058, 3140, 3224, 3306, 3390, 3472, 3556, 3640, 3722, 3806, 3888, 3972, 4054, 4137, 4219, 4303, 4385, 4469, 4552, 4635, 4718, 4801, 4885, 4967, 5051, 5132, 5215, 5298, 5381, 5465, 5548, 5631, 5714, 5797, 5880, 5963, 6047, 6128, 6211, 6294, 6378, 6460, 6544]
    hit0 = 1
    感电data0 = [0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14]
    感电hit0 = 1
    感电power0 = 1
    TP成长 = 0.10
    TP基础 = 7
    TP上限 = 7
    基础施放次数 = 3

    形态 = ["特化", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '70特':
            形态 = '特化'
        if 形态 == '70普':
            形态 = '普通'
        if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "特化":
            if char.get_skill_by_name("手雷精通").等级 > 0:
                self.power0 = 1.2
                self.感电power0 = 1
        if 形态 == "普通":
            self.power0 = 1
            self.感电power0 = 1
    # def 等效CD(self, 武器类型, 输出类型):
    #     # 经过测试,手雷恢复速度无法享受技能冷却恢复加成
    #     return round(self.CD, 1)


class 技能6(职业主动技能):
    名称 = "交叉射击"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [70, 588]
    无色消耗 = 0
    data0 = [0, 1874, 2063, 2253, 2444, 2634, 2824, 3015, 3204, 3394, 3584, 3775, 3965, 4155, 4344, 4535, 4725, 4915, 5106, 5296, 5485, 5675, 5866, 6056, 6246, 6437, 6626, 6816, 7006, 7197, 7387, 7578, 7766, 7957, 8147, 8338, 8528, 8718, 8907, 9098, 9288, 9478, 9669, 9859, 10048, 10238, 10429, 10619, 10809, 11000, 11189, 11379, 11569, 11760, 11950, 12140, 12329, 12520, 12710, 12900, 13091, 13281, 13470, 13660, 13851, 14041, 14231, 14422, 14611, 14801, 14992]
    hit0 = 3
    TP成长 = 0.1
    TP上限 = 7


class 技能7(职业主动技能):
    名称 = "爆裂弹"
    所在等级 = 30
    等级上限 = 20
    学习间隔 = 3
    等级精通 = 10
    CD = 0.115
    MP = [357, 2765]
    无色消耗 = 0
    data0 = [0, 891, 1033, 1174, 1316, 1458, 1600, 1741, 1883, 2026, 2167, 2310, 2451, 2592, 2735, 2876, 3019, 3162, 3303, 3445, 3587]
    hit0 = 1

    def 等效CD(self, **argv):
        # 武器类型 输出类型 额外CDR 手搓收益 恢复
        武器类型 = argv.get('武器类型', '')
        if 武器类型 == "手弩":
            return 0.115
        if 武器类型 == "步枪":
            return 0.14
        return 0.5


class 技能8(职业主动技能):
    名称 = 'G18冰冻手雷'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4
    MP = [70, 560]
    无色消耗 = 0
    data0 = [0, 1007, 1108, 1212, 1314, 1415, 1519, 1620, 1723, 1825, 1926, 2030, 2131, 2233, 2337, 2438, 2541, 2642, 2744, 2848, 2949, 3052, 3153, 3256, 3358, 3460, 3564, 3665, 3767, 3869, 3971, 4074, 4176, 4278, 4379, 4483, 4585, 4687, 4789, 4890, 4994, 5096, 5198, 5301, 5402, 5505, 5607, 5710, 5812, 5913, 6016, 6119, 6220, 6323, 6424, 6528, 6630, 6731, 6834, 6935, 7039, 7141, 7242, 7346, 7447, 7550, 7652, 7753, 7857, 7958, 8060]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7

    基础施放次数 = 3

    形态 = ["特化", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '70特':
            形态 = '特化'
        if 形态 == '70普':
            形态 = '普通'
        if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "特化":
            if char.get_skill_by_name("手雷精通").等级 > 0:
                self.power0 = 1.2
        if 形态 == "普通":
            self.power0 = 1


class 技能9(职业主动技能):
    名称 = "聚合弹"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 18
    MP = [150, 1232]
    无色消耗 = 0
    data0 = [0, 14025, 15449, 16872, 18295, 19717, 21141, 22564, 23986, 25411, 26833, 28256, 29678, 31103, 32525, 33948, 35370, 36795, 38217, 39640, 41062, 42487, 43909, 45332, 46754, 48178, 49601, 51024, 52446, 53870, 55293, 56716, 58138, 59562, 60985, 62408, 63830, 65254, 66677, 68100, 69522, 70946, 72369, 73791, 75216, 76638, 78061, 79483, 80908, 82330, 83753, 85175, 86600, 88022, 89445, 90867, 92291, 93714, 95137, 96559, 97983, 99406, 100829, 102251, 103675, 105098, 106521, 107943, 109367, 110790, 112213]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能10(职业主动技能):
    名称 = "C4飞弹"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [150, 1232]
    无色消耗 = 0
    data0 = [0, 12151, 13385, 14617, 15850, 17083, 18315, 19549, 20781, 22014, 23248, 24480, 25713, 26945, 28178, 29412, 30644, 31877, 33109, 34343, 35576, 36808, 38041, 39273, 40507, 41740, 42972, 44205, 45437, 46671, 47904, 49136, 50370, 51602, 52835, 54068, 55300, 56534, 57766, 58999, 60233, 61465, 62698, 63930, 65163, 66397, 67629, 68862, 70094, 71327, 72561, 73793, 75026, 76258, 77492, 78725, 79957, 81190, 82422, 83656, 84889, 86121, 87355, 88587, 89820, 91053, 92285, 93519, 94751, 95984, 97217]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 *= 1.25


class 技能11(职业主动技能):
    名称 = "凝固汽油弹"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [200, 1812]
    无色消耗 = 1
    data0 = [0, 14146, 15580, 17015, 18449, 19886, 21320, 22755, 24190, 25626, 27061, 28495, 29929, 31366, 32801, 34235, 35671, 37107, 38541, 39975, 41411, 42845, 44281, 45715, 47151, 48585, 50021, 51457, 52891, 54326, 55761, 57196, 58631, 60066, 61500, 62937, 64372, 65806, 67243, 68677, 70112, 71546, 72980, 74418, 75852, 77286, 78722, 80158, 81592, 83026, 84461, 85898, 87332, 88766, 90202, 91637, 93072, 94508, 95942, 97377, 98812, 100247, 101683, 103117, 104553, 105988, 107423, 108857, 110291, 111727, 113163]
    hit0 = 1
    data1 = [0, 74, 78, 87, 93, 102, 107, 116, 122, 131, 137, 144, 153, 159, 168, 174, 182, 188, 197, 202, 210, 218, 225, 234, 240, 249, 254, 262, 268, 277, 284, 291, 299, 306, 315, 321, 328, 334, 343, 350, 357, 365, 372, 380, 385, 394, 402, 409, 416, 424, 431, 438, 444, 452, 459, 468, 475, 483, 490, 497, 505, 510, 518, 525, 534, 540, 549, 556, 563, 569, 577]
    hit1 = 15
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.4
        self.hit1 = 0
        self.CDR *= 0.94


class 技能12(职业主动技能):
    名称 = "镭射狙击"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [400, 3360]
    无色消耗 = 2
    data0 = [0, 4817, 5305, 5794, 6283, 6772, 7261, 7749, 8238, 8727, 9216, 9706, 10194, 10683, 11172, 11661, 12150, 12638, 13127, 13616, 14105, 14593, 15082, 15571, 16060, 16547, 17036, 17525, 18014, 18503, 18991, 19480, 19969, 20458, 20946, 21435, 21924, 22413, 22902, 23390, 23879, 24368, 24857, 25345, 25835, 26324, 26813, 27302, 27790, 28279, 28768, 29257, 29746, 30234, 30723, 31212, 31701, 32188, 32677, 33166, 33655, 34144, 34632, 35121, 35610, 36099, 36587, 37076, 37565, 38054, 38543]
    hit0 = 5
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 0.28
        self.hit0 = 24
        self.技能施放时间 = 3.0


class 技能13(被动技能):
    名称 = '弹药强化'
    所在等级 = 48
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        return 1.105 + self.等级 * 0.015 if self.等级 > 0 else 1


class 技能14(职业主动技能):
    名称 = "EMP磁暴"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [880, 7392]
    无色消耗 = 5
    data0 = [0, 18100, 22296, 26493, 30691, 34888, 39084, 43281, 47479, 51676, 55872, 60071, 64267, 68464, 72661, 76859, 81055, 85252, 89450, 93647, 97844, 102040, 106239, 110435, 114632, 118828, 123027, 127223, 131420, 135618, 139815, 144011, 148208, 152406, 156603, 160800, 164998, 169194, 173391, 177588, 181786, 185983, 190179, 194378, 198574, 202771, 206967, 211166, 215362, 219559, 223756]
    hit0 = 1
    data1 = [0, 18100, 22296, 26493, 30691, 34888, 39084, 43281, 47479, 51676, 55872, 60071, 64267, 68464, 72661, 76859, 81055, 85252, 89450, 93647, 97844, 102040, 106239, 110435, 114632, 118828, 123027, 127223, 131420, 135618, 139815, 144011, 148208, 152406, 156603, 160800, 164998, 169194, 173391, 177588, 181786, 185983, 190179, 194378, 198574, 202771, 206967, 211166, 215362, 219559, 223756]
    hit1 = 1
    data2 = [0, 904, 1114, 1324, 1534, 1744, 1954, 2164, 2372, 2583, 2793, 3003, 3213, 3423, 3633, 3843, 4051, 4262, 4472, 4682, 4892, 5102, 5312, 5520, 5730, 5940, 6151, 6361, 6571, 6781, 6989, 7199, 7409, 7619, 7830, 8040, 8250, 8460, 8668, 8878, 9088, 9298, 9509, 9719, 9929, 10137, 10347, 10557, 10767, 10977, 11187]
    hit2 = 20
    data3 = [0, 18100, 22296, 26493, 30691, 34888, 39084, 43281, 47479, 51676, 55872, 60071, 64267, 68464, 72661, 76859, 81055, 85252, 89450, 93647, 97844, 102040, 106239, 110435, 114632, 118828, 123027, 127223, 131420, 135618, 139815, 144011, 148208, 152406, 156603, 160800, 164998, 169194, 173391, 177588, 181786, 185983, 190179, 194378, 198574, 202771, 206967, 211166, 215362, 219559, 223756]
    hit3 = 1


class 技能15(职业主动技能):
    名称 = 'G61重力手雷'

    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 20
    MP = [400, 1120]
    无色消耗 = 2
    data0 = [0, 295, 326, 356, 387, 415, 445, 476, 506, 537, 566, 597, 626, 656, 686, 716, 747, 777, 808, 836, 866, 897, 927, 958, 987, 1016, 1047, 1077, 1108, 1137, 1167, 1198, 1227, 1257, 1287, 1317, 1348, 1378, 1409, 1437, 1468, 1498, 1528, 1559, 1588, 1618, 1648, 1678, 1708, 1738, 1769]
    hit0 = 29
    data1 = [0, 8887, 9790, 10692, 11594, 12496, 13397, 14300, 15200, 16103, 17004, 17907, 18807, 19709, 20611, 21513, 22416, 23317, 24220, 25120, 26022, 26924, 27826, 28726, 29629, 30530, 31433, 32334, 33237, 34137, 35040, 35942, 36843, 37746, 38646, 39549, 40450, 41353, 42254, 43157, 44057, 44959, 45861, 46763, 47665, 48567, 49468, 50370, 51272, 52174, 53076]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    技能施放时间 = 3
    是否有护石 = 1

    def 装备护石(self, char):
        self.power1 = 2.34
        self.技能施放时间 = 0.5
        self.hit0 = 5


class 技能16(职业主动技能):
    名称 = '超真空弹：切利'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [800, 1680]
    无色消耗 = 3
    data0 = [0, 141, 155, 169, 183, 199, 213, 227, 241, 256, 271, 285, 299, 313, 328, 342, 356, 370, 385, 400, 414, 428, 442, 458, 472, 486, 500, 514, 529, 543, 558, 572, 586, 601, 615, 629, 643, 657, 673, 687, 701, 715, 730, 745, 759, 773, 787, 802, 816, 830, 845]
    hit0 = 20
    data1 = [0, 566, 623, 681, 737, 795, 853, 910, 968, 1026, 1083, 1140, 1197, 1255, 1313, 1370, 1428, 1484, 1542, 1600, 1657, 1715, 1773, 1830, 1887, 1944, 2002, 2060, 2117, 2175, 2231, 2289, 2346, 2404, 2462, 2519, 2576, 2633, 2691, 2749, 2806, 2864, 2922, 2978, 3036, 3093, 3151, 3209, 3266, 3323, 3380]
    hit1 = 5
    data2 = [0, 22651, 24949, 27246, 29545, 31843, 34140, 36438, 38737, 41035, 43332, 45630, 47928, 50227, 52524, 54822, 57120, 59419, 61716, 64014, 66312, 68611, 70908, 73206, 75504, 77801, 80100, 82398, 84696, 86993, 89291, 91590, 93888, 96185, 98483, 100782, 103080, 105377, 107675, 109974, 112272, 114569, 116867, 119165, 121463, 123761, 126059, 128357, 130654, 132953, 135251]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 5

    技能施放时间 = 1
    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.25
        self.CDR *= 0.95


class 技能17(被动技能):
    名称 = '制空掌握'
    所在等级 = 75
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 3)


class 技能18(职业主动技能):
    名称 = "开火"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [160, 1600]
    无色消耗 = 5
    data0 = [0, 12110, 13339, 14567, 15795, 17025, 18253, 19482, 20711, 21939, 23168, 24397, 25625, 26854, 28083, 29311, 30541, 31770, 32998, 34226, 35454, 36683, 37912, 39140, 40369, 41597, 42826, 44056, 45283, 46513, 47742, 48970, 50199, 51428, 52655, 53884, 55112, 56341, 57570, 58798, 60028, 61257, 62485, 63714, 64942, 66171, 67400, 68628, 69857, 71086, 72313]
    hit0 = 6

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.35


class 技能19(职业主动技能):
    名称 = "光子霰雷发射器"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [0, 10789, 11885, 12979, 14074, 15168, 16264, 17358, 18452, 19547, 20641, 21737, 22831, 23926, 25020, 26115, 27210, 28304, 29399, 30493, 31588, 32683, 33778, 34872, 35967, 37061, 38157, 39251, 40345, 41440, 42534, 43630, 44724, 45819, 46913, 48009, 49103, 50198, 51292, 52386, 53482, 54576, 55671, 56765, 57861, 58955, 60050, 61144, 62238, 63334, 64428]
    hit0 = 8

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 1
        self.power0 = 1 + 8.66 + 0.96
        self.CDR *= 0.93


class 技能20(职业主动技能):
    名称 = "决战之日"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 8000]
    无色消耗 = 10
    data0 = [0, 4866, 5995, 7124, 8253, 9380, 10510, 11639, 12766, 13895, 15024, 16153, 17281, 18410, 19539, 20668, 21795, 22924, 24054, 25181, 26310, 27439, 28568, 29696, 30825, 31954, 33083, 34210, 35339, 36468, 37596, 38725, 39854, 40983, 42111, 43240, 44369, 45496, 46625, 47754, 48883, 50011, 51140, 52269, 53398, 54526, 55655, 56784, 57911, 59040, 60169]
    hit0 = 40

    技能施放时间 = 5


class 技能21(被动技能):
    名称 = '单兵推进器-02X'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能22(职业主动技能):
    名称 = "空袭战略"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [400, 3000]
    无色消耗 = 7
    data0 = [0, 82052, 90376, 98700, 107024, 115348, 123672, 131996, 140321, 148645, 156969, 165293, 173617, 181941, 190265, 198589, 206913, 215238, 223562, 231886, 240210, 248534, 256858, 265182, 273507, 281830, 290155, 298479, 306803, 315127, 323451, 331775, 340099, 348424, 356747, 365072, 373396, 381720, 390044, 398368, 406693, 415016, 423341, 431665, 439989, 448313, 456637, 464961, 473285, 481610, 489933]
    hit0 = 1

    技能施放时间 = 2
    持续时间 = 2


class 技能23(职业主动技能):
    名称 = "终解·制空霸权"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4028, 8056]
    无色消耗 = 15
    data0 = [0, 26566, 32726, 38886, 45046, 51206, 57367, 63527, 69687, 75847, 82007, 88168, 94328, 100488, 106648, 112808, 118968, 125130, 131290, 137450, 143610, 149770, 155930, 162091, 168251, 174411, 180571, 186731, 192893, 199053, 205213, 211373, 217533, 223692, 229854, 236014, 242174, 248334, 254494, 260654, 266815, 272975, 279135, 285295, 291455, 297615, 303777, 309937, 316097, 322257, 328417]
    hit0 = 7
    data1 = [0, 86782, 106905, 127028, 147151, 167276, 187399, 207523, 227646, 247769, 267892, 288017, 308140, 328263, 348386, 368510, 388633, 408758, 428881, 449004, 469127, 489250, 509375, 529498, 549621, 569745, 589868, 609991, 630116, 650239, 670362, 690485, 710609, 730732, 750856, 770980, 791103, 811226, 831349, 851474, 871597, 891720, 911844, 931967, 952090, 972215, 992338, 1012461, 1032584, 1052707, 1072831]
    hit1 = 5

    脱手 = 0
    技能施放时间 = 6.8


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'spitfire_female'
        self.名称 = '重霄·弹药专家'
        self.角色 = '神枪手(女)'

        self.职业 = '弹药专家'
        # 用来筛CP武器的
        self.转职 = '弹药专家(女)'
        self.武器选项 = ['手弩', '步枪']
        self.输出类型选项 = ['魔法固伤', '物理固伤']
        self.防具精通属性 = ['智力', '力量']
        self.类型 = '魔法固伤'
        self.武器类型 = '手弩'
        self.防具类型 = '皮甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.84

        super().__init__(equVersion)

    # def __set_individuation(self, info):
    #     info['individuation'] = [
    #         {"type": "checkbox", "value": "测试checkbox",
    #             "items": [], "row":0, "column":0, "key":0},
    #         {"type": "select", "value": "", "items": [
    #             1, 2, 3, 4, 5, 6, 7], "row":1, "column":0, "key":1},
    #         {"type": "label", "value": "测试label",
    #          "items": [], "row":2, "column":0, "key":2}
    #     ]

    def set_skill_info(self, info, rune_except=[], clothes_pants=[]):
        super().set_skill_info(info, rune_except=[
            '爆裂弹'], clothes_pants=['远古记忆'])

    # def get_skill_by_name(self, name) -> Union[技能, 主动技能, 被动技能]:
    #     if name == "光子霰雷发射器":
    #         name = "光子霰雷发射器"
    #     return self.技能栏[self.技能序号.get(name, 0)]

    def set_skills(self):
        self.单技能加成('兵器研究', lv=3)
